
package web.reclamos.dao.factory;

import web.reclamos.dao.CoorporacionDao;
import web.reclamos.dao.EmpresaDao;
import web.reclamos.dao.AreaDao;
import web.reclamos.dao.DepartamentoDao;
import web.reclamos.dao.ReclamoDao;
import web.reclamos.dao.TipoDao;
import web.reclamos.dao.UsuarioDao;
import web.reclamos.dao.sql.FabricaDaoSql;

public abstract class FabricaDao {

 public static  final int IMPLEMENTCAION1 = 1;
    public static final int IMPLEMENTCAION2 = 2;
    public static final int SQL = 3;

    public abstract CoorporacionDao getCoorporacionDao();
    public abstract EmpresaDao getEmpresaDao();
    public abstract AreaDao getAreaDao();
    public abstract DepartamentoDao getDepartamentoDao();
    public abstract UsuarioDao getUsuarioDao();
    public abstract ReclamoDao getReclamoDao();
    public abstract TipoDao getTipoDao();

    public static FabricaDao getFabricaDao( int tipo  ) {
        FabricaDao fabrica = null;
        switch(tipo) {
            case IMPLEMENTCAION1:
               //fabrica = new FabricaDaoImpl1();
                break;
            case IMPLEMENTCAION2:

                break;
            case SQL:
                fabrica = new FabricaDaoSql();
                break;
        }
        return fabrica;
    }
}
